import { IPSAppDEMethod } from '../dataentity/ipsapp-demethod';
import { IPSAppDataEntity } from '../dataentity/ipsapp-data-entity';
import { IPSAppUIAction } from '../view/ipsapp-uiaction';
import { IPSAppWF } from './ipsapp-wf';
import { IPSAppWFVer } from './ipsapp-wfver';
import { IPSWFUIAction } from '../../wf/uiaction/ipswfuiaction';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSAppWFUIAction
 */
export interface IPSAppWFUIAction extends IPSWFUIAction, IPSAppUIAction {
  /**
   * 应用实体方法
   *
   * @type {IPSAppDEMethod}
   */
  getPSAppDEMethod(): IPSAppDEMethod | null;

  /**
   * 应用实体方法
   *
   * @type {IPSAppDEMethod}
   */
  get psAppDEMethod(): IPSAppDEMethod | null;

  /**
   * 应用实体方法（必须存在）
   *
   * @type {IPSAppDEMethod}
   */
  getPSAppDEMethodMust(): IPSAppDEMethod;

  /**
   * 应用实体对象
   *
   * @type {IPSAppDataEntity}
   */
  getPSAppDataEntity(): IPSAppDataEntity | null;

  /**
   * 应用实体对象
   *
   * @type {IPSAppDataEntity}
   */
  get psAppDataEntity(): IPSAppDataEntity | null;

  /**
   * 应用实体对象（必须存在）
   *
   * @type {IPSAppDataEntity}
   */
  getPSAppDataEntityMust(): IPSAppDataEntity;

  /**
   * 应用工作流
   *
   * @type {IPSAppWF}
   */
  getPSAppWF(): IPSAppWF | null;

  /**
   * 应用工作流
   *
   * @type {IPSAppWF}
   */
  get psAppWF(): IPSAppWF | null;

  /**
   * 应用工作流（必须存在）
   *
   * @type {IPSAppWF}
   */
  getPSAppWFMust(): IPSAppWF;

  /**
   * 应用工作流版本
   *
   * @type {IPSAppWFVer}
   */
  getPSAppWFVer(): IPSAppWFVer | null;

  /**
   * 应用工作流版本
   *
   * @type {IPSAppWFVer}
   */
  get psAppWFVer(): IPSAppWFVer | null;

  /**
   * 应用工作流版本（必须存在）
   *
   * @type {IPSAppWFVer}
   */
  getPSAppWFVerMust(): IPSAppWFVer;
}
